using System;
using System.Collections.Generic;
using System.Text;

namespace Stormwind.Core.Data {
	/// <summary>
	/// Data Definition for a given report.
	/// </summary>
	public class DataDefinition {
		private IList<DataSource> dataSources = new List<DataSource>();
		private IList<FieldDefinition> fields = new List<FieldDefinition>();
		private IList<DataRelation> relations = new List<DataRelation>();
		private IList<GroupingDefinition> groupings = new List<GroupingDefinition>();

		/// <summary>
		/// Data sources for this definition.
		/// </summary>
		public IList<DataSource> DataSources {
			get { return dataSources; }
			set { dataSources = value; }
		}

		/// <summary>
		/// Field definitions in this report.
		/// </summary>
		public IList<FieldDefinition> Fields {
			get { return fields; }
			set { fields = value; }
		}

		/// <summary>
		/// Relations between data sources.
		/// </summary>
		public IList<DataRelation> Relations {
			get { return relations; }
			set { relations = value; }
		}

		/// <summary>
		/// Groupings of this definition.
		/// </summary>
		public IList<GroupingDefinition> Groupings {
			get { return groupings; }
			set { groupings = value; }
		}
	}
}
